import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'

const app = createApp(App);

// 使用路由和 Element Plus 插件
app.use(router).use(ElementPlus)

// 1. Vue 错误处理
app.config.errorHandler = (err, instance, info) => {
    console.log('Vue 错误已被捕获:', err)
    // 阻止错误显示在页面
    return true // 返回 true 表示错误已处理
}

// 2. 重写 window.onerror
window.onerror = function (message, source, lineno, colno, error) {
    console.log('全局错误已被捕获:', message)
    return true // 返回 true 阻止浏览器默认错误处理
}

// 3. 处理未捕获的 Promise 拒绝
window.addEventListener('unhandledrejection', function (event) {
    console.log('Promise 错误已被捕获:', event.reason)
    event.preventDefault() // 阻止默认处理
    event.stopPropagation() // 阻止事件冒泡
})

// 4. 捕获控制台错误
const originalError = console.error
console.error = function (...args) {
    // 静默处理错误日志，或者重定向到其他输出
    // 如果不想在控制台显示，可以完全注释掉
    // originalError.apply(console, args) // 注释这行就不会在控制台显示
}

app.mount('#app')